Retail stores have used point of sale terminals with optical code scanners for years to process purchase transactions. During this time, numerous methods have been developed to make fraudulent purchases using optical code scanners. The fraudulent methods include replacing the optical code used to identify an expensive item with the optical code for a lower cost item. The fraudulent methods further include sweet hearting or passing an item to the bagging area without scanning it. Attempts to mitigate the fraud include adding security scales to the bagging area of the point of sale terminal to assure the items being bagged match the item identified for purchase. However, these attempts have not eliminated the fraud. In the above case, if the lower cost item has the same weight as the expensive item, the security scale will not identify the fraud because the expected weight was placed in the bagging area.
Additional non-fraud related issues also exist. For example, the optical code that identifies an item may not be readable due to damage or because it is covered by another label, printing, or because it is missing. In these cases, a person must identify the item and enter it into the point of sale terminal. This typically increases the time required to conduct the purchase transaction.
In an attempt to solve these issues, software has been written to uniquely identify an item simply by the item's appearance instead of by using an optical code. The software identifies the item by analyzing a captured image of the item. However, analyzing the captured image requires a relatively long period of time and the data record produced by the analysis is very large, sometimes approaching 100,000 bytes. The analysis also requires a large database with information on every known item which is then used to uniquely identify an unknown item. In some implementations, the database stores data for over 100,000 known items where each database record for a known item could have between 10,000 and 100,000 bytes of data. The resulting database would require between 1 and 10 Gigabytes of data storage. If the database is located on a central server computer, between 10,000 and 100,000 bytes of the data must be transmitted from the point of sale terminal to the central server computer for each item to be identified. This process of transmitting the data to the central server computer and then processing the data to identify the item can take multiple seconds for each item. In one test using data for only 80 known items in a database, the average identification time was between two and three seconds. For a database of 100,000 items, the projected average identification time was determined to 3,651 seconds.